package com.ksd.pug.service.article;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ksd.pug.pojo.Article;
import com.ksd.pug.vo.comment.ArticleVo;

import java.util.List;
import java.util.Map;

/**
 * @author: hcl
 * @date: 2022/1/24 14:56
 */
public interface IArticleService extends IService<Article> {

    /**
     * 统计用户创作数
     * @return
     */
    List<Map<String, Object>> countUserCraetion(Long userId);
    /**
     * 查询产品列表信息并分页
     *
     * @return
     */
    IPage<Article> findArticlePage(ArticleVo articleVo);
    //会根据权限判断 如果只是普通用户查自己的
    IPage<Article> findArticlePage2(ArticleVo articleVo);

    //获取用户的文章列表
    List<Article> findArticleMy(ArticleVo articleVo);

    IPage<Article> findArticleMyPage(ArticleVo articleVo);


    /**
     * 保存和修改产品
     *
     * @param article
     */
    Article saveUpdateArticle(Article article);


    /**
     * 根据产品id删除产品
     *
     * @param id
     * @return
     */
    boolean delArticle(Long id);

    /**
     * 根据产品ids删除产品
     *
     * @param ids
     * @return
     */
    boolean delBatchArticle(String ids);

    /**
     * 根据产品id查询产品
     *
     * @param id
     * @return
     */
    Article getArticle(Long id);

    /**
     * 查询热点文章
     *
     * @return
     */
    List<Article> findArticleTop(ArticleVo articleVo);

    /**
     * 文章点赞
     *
     * @return
     */
    int articleZanPlus(Long articleId);

    /**
     * 文章取消点赞
     *
     * @return
     */
    int articleZanMius(Long articleId);

    /**
     * 文章收藏
     *
     * @return
     */
    int articleCollectPlus(Long articleId);

    /**
     * 文章取消收藏
     *
     * @return
     */
    int articleCollectMius(Long articleId);


}
